#pragma once

#include <array>

class GameState {
public:
    // 构造函数
    GameState();

    // 窗口尺寸
    int Width;
    int Height;

    bool needCheck;

    // 棋盘数据（3x3）
    std::array<std::array<char, 3>, 3> boardData;

    // 棋子类型（X和O）
    std::array<char, 2> pieces;

    // 当前轮到哪个棋子
    int currentPiece;

    // 已落子次数
    int moveCount;

    // 运行状态
    [[nodiscard]] bool isRunning() const;

    // 退出游戏
    void quit();

    // 重置游戏
    void resetGame();

    // 获取当前棋子
    [[nodiscard]] char getCurrentPiece() const { return pieces[currentPiece]; }

private:
    // 运行状态
    bool running;
};
